Many digital electronic circuits rely upon a clock signal to synchronize the operation of the internal and external output signals. These circuits are commonly referred to as synchronous sequential networks. The clock signal consists of a periodic series of pulses that is used to control the operation of the internal circuit elements. (e.g., gates, flip-flops, latches, etc. By way of example, clock signals are typically used in computer or digital systems to synchronize the operation of logic gates in integrated circuits to avoid the possibility of generating spurious output values. Spurious output values are caused by extrinsic hazards such as a difference in switching times between various gates, or race conditions between the internal switching components.
Most often, clock pulses are distributed throughout a computer or digital system, with the clock pulses usually being supplied from a central clock generator. To insure proper operation, it is important that the clock pulses be distributed with equal time delays to different places in a computer, because if the time delays are different, the computer may malfunction. Another way that a computer or microprocessor can malfunction is when it is supplied a clock signal which includes random or spurious oscillatory signals. These signals--commonly referred to as "glitches"--can cause a microprocessor to enter undefined modes which are catastrophic to normal program execution.
The problem of glitching clock signals is particularly acute in portable or low power computer systems. For example, laptop computers often include specialized power management circuitry for reducing the frequency of the input clock signal at times when the computer is either inactive or otherwise in a reduced power state. Because glitches are commonly generated in the clock input signal during the switching of the clock signal from a high frequency to a low frequency, and, visa versa, the computer's microprocessor can enter an undefined mode. Such undefined modes can result in the corruption of customer data as well as possible damage to the disk drive itself.
Thus, there is a need for a clock switching circuit which provides glitch-free switching between clock signals having different frequencies. As will be seen, the present invention provides a synchronous, no-glitch, clock switching apparatus which is ideally-suited for use in low-power computer and digital systems.